home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
macros
/
tip
/
ts-outpu.tip
< prev
next >
Wrap
Text File
|
1993-09-15
|
5KB
|
189 lines
% This macro source file is from the four volume series
% "TeX in Practice" by Stephan von Bechtolsheim, published
% 1993 by Springer-Verlag, New York.
% Copyright 1993 Stephan von Bechtolsheim.
% No warranty or liability is assumed.
% This macro may be copied freely if no fees other than
% media cost or shipping charges are charged and as long
% as this copyright and the following source code itself
% is not changed. Please see the series for further information.
%
% Version: 1.0
% Date: May 1, 1993
%
%
% This source code is documented in 35.9.1, p. IV-122.
% Original source in file "o2.TEX", starting line 1834.
\wlog{L: "ts-outpu.tip" ["o2.TEX," l. 1834, p. IV-122]}%
% This file DOES belong to format "texip."
\InputD{namedef.tip}
\InputD{showpll.tip}
\InputD{new-midi.tip}
\InputD{topinfix.tip}
\InputD{nathd.tip}
\InputD{rangetst.tip}
\newif\ifWritePageLog
\WritePageLogfalse
\newwrite\PageLogStream
\def\WritePageLogFile{%
\immediate\openout\PageLogStream = \jobname.plog
\WritePageLogtrue
}
\newcount\BadnessSave
\ShowPlainListsfalse
\catcode`\@ = 11
\newcount\@PageLayoutCode
\def\SetPageLayout #1{%
\global\@PageLayoutCode = #1
\CheckRange{\@PageLayoutCode}{0}{5}%
{\string\SetPageLayout: }
}
\SetPageLayout{0}%
\def\@LeftRunningHead{}
\def\@RightRunningHead{}
\newcount\@SavedPageLayoutCode
\def\NewPageRightHandSpecial{%
\vfill
\supereject
\ifodd\count0
\wlog{\string\NewPageRightHandSpecial: no empty
page to generate (\string\count0 = \the\count0)}%
\else
\hbox{}
\@SavedPageLayoutCode = \@PageLayoutCode
\SetPageLayout{1}%
\wlog{\string\NewPageRightHandSpecial: empty page
generated,
(\string\count0 = \the\count0).}%
\vfill
\eject
\SetPageLayout{\@SavedPageLayoutCode}%
\fi
}
\newdimen\OddPagesHorizontalShift
\newdimen\EvenPagesHorizontalShift
\newdimen\CurrentPageShift
\def\plainoutput{%
\@ShowPlainLists
\edef\@LeftRunningHead{\@LeftRunningHead}%
\edef\@RightRunningHead{\@RightRunningHead}%
\ifnum\@PageLayoutCode = 0
\else
\headline = {}
\footline = {}
\fi
\ifcase\@PageLayoutCode
\or
\or
\global\@PageLayoutCode = 3
\or
\@PageLayoutCodeThree
\or
\global\@PageLayoutCode = 5
\or
\ifodd\count0
\headline = {%
\small\rm
\hfil
\botmark
\hskip 18pt
\PrintCounter{PageNo}%
}%
\else
\headline = {%
\small\rm
\PrintCounter{PageNo}%
\hskip 18pt
\@LeftRunningHead
\hfil
}%
\fi
\else
\errmessage{\string\plainoutput: \string\@PageLayoutCode
out of range.}%
\fi
\setbox 4 = \vbox{%
\pagebody
}%
\ifWritePageLog
\immediate\write\PageLogStream{%
Part name: \CurrentPartName, Page \the\count0
}%
\immediate\write\PageLogStream{%
Page \the\count0:
stretch: \the\pagestretch,
shrink: \the\pageshrink,
outputpenalty: \the\outputpenalty
}%
\immediate\write\PageLogStream{%
pagefilstretch: \the\pagefilstretch,
pagefillstretch: \the\pagefillstretch
}%
\immediate\write\PageLogStream{%
ht 255: \the\ht255,
dp 255: \the\dp255
}%
\NaturalHeight{\dimen0}{255}%
\NaturalDepth{\dimen1}{255}%
\immediate\write\PageLogStream{%
Natural height: \the\dimen0,
Natural depth: \the\dimen1
}%
\dimen2 = \vsize
\advance\dimen2 by -\dimen0
\immediate\write\PageLogStream{%
Ideal height: \the\vsize,
Difference: \the\dimen2
}%
\immediate\write\PageLogStream{%
badness: \the\BadnessSave,
height: \the\ht4,
depth: \the\dp4
}%
\immediate\write\PageLogStream{}%
\fi
\setbox 5 = \vbox{%
\makeheadline
\box 4
\makefootline
}%
\@MakeRobustMacros
\ifodd\count0
\CurrentPageShift = \OddPagesHorizontalShift
\else
\CurrentPageShift = \EvenPagesHorizontalShift
\fi
\wlog{Redefined \string\plainoutput (ts-outpu.tip):
Shifting: shift amount is \the\CurrentPageShift\space\space
(page is \the\pageno).}%
\setbox 6 = \vbox{%
\moveright\CurrentPageShift \box5
}%
\shipout\box6
\advancepageno
\ifnum\outputpenalty > -10000
\else
\dosupereject
\fi
}
\def\@PageLayoutCodeThree{%
\ifodd\count0
\headline = {%
\small\rm
\hfil
\@RightRunningHead
\hskip 18pt
\PrintCounter{PageNo}%
}%
\else
\headline = {%
\small\rm
\PrintCounter{PageNo}%
\hskip 18pt
\@LeftRunningHead
\hfil
}%
\fi
}
\catcode`\@ = 12